package cn.iocoder.yudao.module.trade.controller.admin.depositorderreturn.vo;

import cn.iocoder.yudao.module.trade.controller.admin.depositorderreturnlog.vo.DepositOrderReturnLogRespVO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.math.BigDecimal;

@Schema(description = "管理后台 - 押金单退瓶新增/修改 Request VO")
@Data
public class DepositOrderReturnSaveReqVO {

    @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "17352")
    private Long id;

    @Schema(description = "单据单号")
    private String code;

    @Schema(description = "燃气户id", example = "21330")
    private Long crmGasUserId;

    @Schema(description = "押金单id", example = "12917")
    private Long depositId;

    @Schema(description = "押金总瓶数")
    private Integer steelCylinderTotal;

    @Schema(description = "退瓶数量", example = "8819")
    private Integer bottleReturnCount;

    @Schema(description = "已扫描退瓶数量", example = "6545")
    private Integer scanBottleReturnCount;

    @Schema(description = "押金内容")
    private String depositContent;

    @Schema(description = "应退金额")
    private BigDecimal refundableAmount;

    @Schema(description = "实际退款金额")
    private BigDecimal actuaRefundAmount;

    @Schema(description = "退瓶原因")
    private String reasonBottleReturn;

    @Schema(description = "总押金")
    private BigDecimal totalDeposit;

    @Schema(description = "待缴租金", example = "18660")
    private Long rentPaid;

    @Schema(description = "部门id", example = "17150")
    private Integer deptId;

    @Schema(description = "确认人", example = "10967")
    private Long confirmId;

    @Schema(description = "退瓶单附件", example = "https://www.iocoder.cn")
    private String imageUrl;

    @Schema(description = "退瓶单状态0待确认1已确认", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
//    @NotNull(message = "退瓶单状态0待确认1已确认不能为空")
    private Integer status;

    @Schema(description = "备注", example = "随便")
    private String remark;


    @Schema(description = "剩余数量")
    private Integer residueCount;
    @Schema(description = "退押金额")
    private BigDecimal refundAmount;
    @Schema(description = "结算金额")
    private BigDecimal settlementAmount;

    @Schema(description = "退瓶记录详情")
    private List<DepositOrderReturnLogRespVO> returnLogList;
}